using System;

namespace AdvancedInspector
{
	[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field)]
	public class ToolbarAttribute : Attribute
	{
		public const string ToolbarStyle = "Toolbar";

		private string name = string.Empty;

		private string style = string.Empty;

		private bool label;

		private bool flexible;

		private int priority;

		public string Name
		{
			get
			{
				return name;
			}
			set
			{
				name = value;
			}
		}

		public string Style
		{
			get
			{
				return style;
			}
			set
			{
				style = value;
			}
		}

		public bool Label
		{
			get
			{
				return label;
			}
			set
			{
				label = value;
			}
		}

		public bool Flexible
		{
			get
			{
				return flexible;
			}
			set
			{
				flexible = value;
			}
		}

		public int Priority
		{
			get
			{
				return priority;
			}
			set
			{
				priority = value;
			}
		}

		public ToolbarAttribute(string name)
			: this(name, string.Empty, false, false, 0)
		{
		}

		public ToolbarAttribute(string name, int priority)
			: this(name, string.Empty, false, false, priority)
		{
		}

		public ToolbarAttribute(string name, string style)
			: this(name, style, false, false, 0)
		{
		}

		public ToolbarAttribute(string name, string style, int priority)
			: this(name, style, false, false, priority)
		{
		}

		public ToolbarAttribute(string name, bool label)
			: this(name, string.Empty, label, false, 0)
		{
		}

		public ToolbarAttribute(string name, bool label, int priority)
			: this(name, string.Empty, label, false, priority)
		{
		}

		public ToolbarAttribute(string name, string style, bool label)
			: this(name, style, label, false, 0)
		{
		}

		public ToolbarAttribute(string name, string style, bool label, int priority)
			: this(name, style, label, false, priority)
		{
		}

		public ToolbarAttribute(string name, string style, bool label, bool flexible)
			: this(name, style, label, flexible, 0)
		{
		}

		public ToolbarAttribute(string name, string style, bool label, bool flexible, int priority)
		{
			this.name = name;
			this.style = style;
			this.label = label;
			this.flexible = flexible;
			this.priority = priority;
		}
	}
}
